package com.aggregate.pay.saobei;

import com.aggregate.pay.saobei.support.Client;
import com.aggregate.pay.saobei.support.client.AuthOpenId;
import com.aggregate.pay.saobei.support.client.JsPay;
import com.aggregate.pay.saobei.support.client.NotifyPay;
import com.aggregate.pay.saobei.support.client.QueryOrder;
import com.aggregate.pay.saobei.support.client.Refund;
import com.aggregate.pay.saobei.support.client.WapPay;

/**
 * 扫呗支付接口-接口类型
 * @author Moyq5
 * @date 2018年6月15日
 */
public enum SaobeiApiType {

	/**
	 * wap支付接口：WapPay
	 */
	WAP_PAY(WapPay.class),
	/**
	 * （渠道）交易通知（参数验证）：Notify
	 */
	PAY_NOTIFY(NotifyPay.class),
	/**
	 * 支付查询：QueryOrder
	 */
	QUERY_ORDER(QueryOrder.class),
	/**
	 * 申请退款：Refund
	 */
	REFUND(Refund.class),
	/**
	 * 公众号预支付：JsPay
	 */
	JS_PAY(JsPay.class),
	/**
	 * 微信公众号JSAPI支付授权：AuthOpenId
	 */
	AUTH_OPEN_ID(AuthOpenId.class);
	
	private Class<? extends Client<?,?>> clientClass;
	
	SaobeiApiType(Class<? extends Client<?,?>> clientClass) {
		this.clientClass = clientClass;
	}

	public Class<? extends Client<?,?>> getClientClass() {
		return clientClass;
	}

}
